type BarType = (num1: number) => number;

//函数的调用签名(从对象的角度来看这个函数，也可以有其他属性)

interface IBar {
  name: string;
  age: number;
  //函数可以调用：函数调用签名
  (num1: number): number;
}

const bar: any = (num1: number): number => {
  return 123;
};

bar.name = "aaa";
bar.age = 16;
bar(123);

//开发中的选择
//1.如果只是描述函数类型本身(函数可以被调用),使用函数类型表达式
//2.如果在描述函数作为对象可以被调用，同时也有其他属性时，使用函数调用签名
export {};
